package com.car.order.service;

import com.alipay.api.AlipayApiException;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.car.order.dto.goodOrderInfo.GoodOrderInfoDto;
import com.car.order.dto.goodOrderInfo.PayOrderForm;
import com.car.order.entity.GoodOrderInfo;
import com.car.order.entity.form.goodOrderInfo.*;
import com.car.order.entity.param.goodsOrderInfo.GoodOrderInfoInsertParam;

import java.util.HashMap;
import java.util.List;
/**
 * @author 杜岷芫
 * @since 2024-08-28 19:00:13
 */
public interface GoodOrderInfoService extends IService<GoodOrderInfo> {

    Page<GoodOrderInfoDto> findPage(GoodOrderInfoFindPageForm form);

    List<GoodOrderInfo> findList(GoodOrderInfoFindListForm form);

    GoodOrderInfo findById(String id);

    GoodOrderInfoDto insert(GoodOrderInfoInsertParam form) throws Exception;

    GoodOrderInfo update(GoodOrderInfoUpdateForm form);

    void delete(Integer id);

    Page<GoodOrderInfoDto> findPageByUserId(GoodOrderInfoFindPageByUserIdForm form);

    String payOrder(PayOrderForm form, Integer userId) throws Exception;

    void payNotify(HashMap<String, String> params) throws AlipayApiException;

    GoodOrderInfoDto changeState(GoodOrderInfoChangeStateForm form);
}